package com.fish.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fish.model.dto.NotificationDTO;
import com.fish.model.dto.NotificationQueryDTO;
import com.fish.model.vo.NotificationDetailVO;
import com.fish.model.vo.NotificationVO;

/**
 * 通知服务接口
 */
public interface NotificationService {
    
    /**
     * 发送通知
     */
    Long sendNotification(NotificationDTO dto);
    
    /**
     * 分页查询我的通知
     */
    IPage<NotificationVO> getMyNotifications(NotificationQueryDTO dto);
    
    /**
     * 获取通知详情
     */
    NotificationDetailVO getNotificationDetail(Long id);
    
    /**
     * 标记通知为已读
     */
    void markAsRead(Long receiverId);
    
    /**
     * 标记所有通知为已读
     */
    void markAllAsRead();
    
    /**
     * 删除通知（接收人删除）
     */
    void deleteNotification(Long receiverId);
    
    /**
     * 获取未读通知数量
     */
    Long getUnreadCount();
    
    /**
     * 撤回通知（发送者撤回）
     */
    void recallNotification(Long notificationId);
}







